Структура програми на мові Сі.

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
Не вказано
Кафедра:
Інформаційних систем та мереж (ІСМ)

Інформація про роботу

Рік:
2007
Тип роботи:
Лабораторна робота
Предмет:
Основи програмування та алгоритмічні мови
Група:
КН-1

Частина тексту файла

МІНІСТЕРCТВО ОСВІТИ І НАУКИ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ “ЛЬВІВСЬКА ПОЛІТЕХНІКА” Кафедра ICM Лабораторна робота №3 “ Структура програми на мові Сі ” Виконав: cтудент гр. КН-1 Львів 2007 Мета роботи: вивчити способи запису програм на мові Сі, ознайомитись з основними конструкціями мови Сі. Приклад для вивчення структури програми: /*риклад для вивчення структури програми: / / /* ІГРОВА ПРОГРАМА "SNAKE" */ /* Директиви препроцесора для включення у текст програми файлів з прототипами бібліотечних функцій */ #include <stdio.h> #include <conio.h> #include <math.h> #include <dos.h> #include <stdlib.h> #include <time.h> /* Директиви препроцесора для визначення макроконстант */ #define GameTime 20 /* Час роботи програми у секундах*/ #define Speed 900 /* Швидкість руху динамічного об'єкта 0..1000 */ /* Оголошення структури */ struct w {char x,y; struct w *next; struct w *before; }; /* Прототипи розроблених функцій */ void cursor_off(void); void cursor_on(void); /* Головна функція*/ void main() { /* Локальні оголошення */ int x1=10,y1=9,x2=70,y2=19,x,y,mark=0; char symbol,c,attrib,h=259,refresh; struct w *head=NULL,*tail, *p, *q,*r; time_t tl,t2; time(&tl); cursor_off(); srand(time(NULL)); /* Побудова статичного зображення екрану*/ textbackground(BLACK); textcolor(0); clrscr(); textcolor(10); /* Тут буде виведено назву гри "SNAKE"*/ gotoxy(20,1); cputs(" *** * * ** * * *****"); gotoxy(20,2); cputs("* * ** * * * * * * "); gotoxy(20,3); cputs(" * * * * * * ** **** "); gotoxy(20,4); cputs(" * * * * ****** * * * "); gotoxy(20,5); cputs("* * * ** * * * * * "); gotoxy(20,6); cputs(" *** * * * * * * *****"); textcolor(12); gotoxy(20,21); cputs("Press arrows key for moving the snake."); gotoxy(7,22); cputs("If the head gets on a symbol'+' the length of the snake is increased."); gotoxy(7,23); cputs("If the head gets on a symbol'-' the length of the snake decreases."); gotoxy(15,24); cputs("Try to construct the greatest length of the snake."); textbackground(3); textcolor(WHITE); x=x1-1; y=y1-1; gotoxy(x,y);putch(201); y=y1-1;for(x=x1;x<=x2;x++){gotoxy(x,y);putch(205);} x=x2+1; y=y1-1; gotoxy(x,y);putch(187); x=x2+1;for(y=y1;y<=y2;y++){gotoxy(x,y);putch(186);} x=x2+1; y=y2+1; gotoxy(x,y);putch(188); y=y2+1;for(x=x2;x>=x1;x--){gotoxy(x,y);putch(205);} x=x1-1; y=y2+1; gotoxy(x,y);putch(200); x=x1-1;for(y=y1;y<=y2;y++){gotoxy(x,y);putch(186);} window(x1,y1,x2,y2); clrscr(); for(x=1 ;x<=x2-x1+1 ;x++) for(y=1 ;y<=y2-y-1+1 ;y++) if(!(y==y2-y1+1&&x==x2-x1+1)) if((float)rand()/RAND_MAX>0.9)putch('+'); else if((float)rand()/RAND_MAX>0.9) putch('-'); else putch(' '); /* Виведення початкового зображення динамічного об'єкта */ /* Функції peekb() та pokeb() забезпечують прямий доступ до відеопам'яті */ textcolor(0); x=wherex(); y=wherey(); attrib=peekb(0xB800,(y1+y-2)*80*2+(x1+x-2)*2+1); // читання з пам'яті tail=(struct w*) malloc(sizeof(struct w)); tail->x=x; tail->y=y; tail->next=head; head=tail; pokeb(0xB800,(y1+head->y-2)*80*2+(x1+head->x-2)*2+1,0x30); // запис у пам'ять pokeb(0xB800,(yl+y-2)*80*2+(xl+x-2)*2,h); /* Зміна зображення динамічного об'єкта, керованого з клавіатури */ do{ if(kbhit()) { c=getch(); if(c==0)c=getch(); refresh=1; } switch(c) { case 72: y--;if(y<1) {y=1; refresh=0;} h=30; break; case 80: y++;if(y>y2-y1+1) {y=y2-y1+1; refresh=0;} h=31; break; case 75: x--;if(x<1) {x=1; refresh=0;} h=17; break; case 77: x++;if(x>x2-x1+1) {x=x2-x1+1; refresh=0;} h=16; break; default: refresh=0; } pokeb(0xB800,(y1+head->y-2)*80*2+(x1+head->x-2)*2,h); if(refresh==1) { q=(struct w*) malloc(sizeof(struct w)); q->x=x; q->y=y; q->next=head; q->before=NULL; head->before=q; head=q; symbol=peekb(0xB800,(y1+y-2)*80*2+(x1+x-2)*2); if(symbol=='+')mark++;pokeb(0xB800,(y1+head->y-2)*80*2+(x1+head->x-2)*2,h); pokeb(0xB800,(y1+head->y-2)*80*2+(x1+head->x-2)*2+1,0x30); if(head->next!=NULL) {pokeb(0xB800,(y1+head->ne...
Антиботан аватар за замовчуванням

01.01.1970 03:01

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Завантаження файлу

Якщо Ви маєте на своєму комп'ютері файли, пов'язані з навчанням( розрахункові, лабораторні, практичні, контрольні роботи та інше...), і Вам не шкода ними поділитись - то скористайтесь формою для завантаження файлу, попередньо заархівувавши все в архів .rar або .zip розміром до 100мб, і до нього невдовзі отримають доступ студенти всієї України! Ви отримаєте грошову винагороду в кінці місяця, якщо станете одним з трьох переможців!
Стань активним учасником руху antibotan!
Поділись актуальною інформацією,
і отримай привілеї у користуванні архівом! Детальніше

Оголошення від адміністратора

Антиботан аватар за замовчуванням

пропонує роботу

Admin

26.02.2019 12:38

Привіт усім учасникам нашого порталу! Хороші новини - з‘явилась можливість кожному заробити на своїх знаннях та вміннях. Тепер Ви можете продавати свої роботи на сайті заробляючи кошти, рейтинг і довіру користувачів. Потрібно завантажити роботу, вказати ціну і додати один інформативний скріншот з деякими частинами виконаних завдань. Навіть одна якісна і всім необхідна робота може продатися сотні разів. «Головою заробляти» продуктивніше ніж руками! :-)

Новини